/**
 * Copyright 2005 Cordys R&D B.V. 
 * 
 * This file is part of the Cordys SAP Connector. 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 package com.eibus.applicationconnector.sap.metadata.storage;

import com.eibus.applicationconnector.sap.exception.SAPConnectorException;
import com.eibus.applicationconnector.sap.metadata.IMetadataCache;

/**
 * This interface holds the storage provider for persisting the metadata cache.
 *
 * @author  pgussow
 */
public interface ICacheStorage
{
    /**
     * This method can load the cache with the given ID.
     *
     * @param   id     The ID for the cache to load.
     * @param   cache  The cache to fill.
     *
     * @throws  SAPConnectorException  In case of any exceptions
     */
    void loadCache(String id, IMetadataCache cache)
            throws SAPConnectorException;

    /**
     * This method will store the given cache on the storage media.
     *
     * @param   cache  The cache to persist.
     *
     * @throws  SAPConnectorException  In case of any exceptions
     */
    void persistCache(IMetadataCache cache)
               throws SAPConnectorException;
}
